#ifndef YEPXML_DOCUMENT_HPP
#define YEPXML_DOCUMENT_HPP

#include "node.hpp"
namespace yxml
{
    /**
     * @brief A xml document.
     *
     * It is just a a tag with special features. The document saves the encoding (to use on @<?xml ?@>) and can be used
     * on Reader and Writer class to read or write the xml.
     **/
    class Document: public Node
    {
    public:
        /**
         * @brief Constructor
         **/
        Document(const string &value, const string &encoding="UTF-8");
        //Document(Reader &reader);

        /**
         * @brief Returns the encoding
         **/
        const string &encoding( void ) const
        {
            return _encoding;
        }

        /**
         * @brief Changes the encoding
         **/
        void encoding( const string &value )
        {
            _encoding = value;
        }


    private:
        Document(const Document& ); // Denies the copy construction
        string _encoding;
    };
}

#endif // YEPXML_DOCUMENT_HPP

